/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package _bai02_phantichphankhaibao;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author Administrator
 */
public class jClass_Bien {

    private String _Ten;
    private String _KieuDuLieu;

    /**
     * @return the _Ten
     */
    public String getTen() {
        return _Ten;
    }

    /**
     * @param Ten the _Ten to set
     */
    public void setTen(String Ten) {
        this._Ten = Ten;
    }

    /**
     * @return the _KieuDuLieu
     */
    public String getKieuDuLieu() {
        return _KieuDuLieu;
    }

    /**
     * @param KieuDuLieu the _KieuDuLieu to set
     */
    public void setKieuDuLieu(String KieuDuLieu) {
        this._KieuDuLieu = KieuDuLieu;
    }

    public jClass_Bien() {
        _Ten = "";
        _KieuDuLieu = "";
    }

    public jClass_Bien(String Str_Ten, String Str_KieuDuLieu){
        _Ten = Str_Ten;
        _KieuDuLieu = Str_KieuDuLieu;
    }

    /**
     *
     * @return có dạng "Tên biến:  x    Kiểu dữ liệu:  N"
     */
    @Override
    public String toString(){
        if (getTen().equals(""))
            return jEnum_ThongTinBoSung.KhongTraVe.value();
        //Đưa tên biến vào chuổi: Tên biến:  x
        String Str_KetQua = jEnum_ThongTinBoSung.TenBien.value();
        Str_KetQua += jEnum_ThongTinBoSung.KhoangCachNho.value();
        Str_KetQua += getTen();
        Str_KetQua += jEnum_ThongTinBoSung.KhoangCachTrongMotPhan.value();


        //Đưa kiểu dữ liệu vào
        Str_KetQua += jEnum_ThongTinBoSung.KieuDuLieu.value();
        Str_KetQua += jEnum_ThongTinBoSung.KhoangCachNho.value();
        Str_KetQua += getKieuDuLieu();
        return Str_KetQua;
    }
    /**
     * @param ChuoiDuocDinhDang vi du: x:N
     * @param Str_ChuoiDuocDinhDang
     */
    public void jCapNhatTuChuoi(String Str_ChuoiDuocDinhDang)    {
        setTen(Str_ChuoiDuocDinhDang.split(jEnum_DauPhanCach.TenBien_KieuDuLieu.value())[0]);
        setKieuDuLieu(Str_ChuoiDuocDinhDang.split(jEnum_DauPhanCach.TenBien_KieuDuLieu.value())[1]);
    }
    /**
     * Kiểm tra xem kiểu dữ liệu có hợp lệ không
     * @return true nếu hợp lệ, false nếu không hợp lệ
     */
    public Boolean jKiemTraKieuDuLieu (){
        Pattern pat=Pattern.compile(jEnum_ChuoiDinhDang.CacKieuDuLieuDuocHoTro.value());
        Matcher matcher =pat.matcher(_KieuDuLieu.trim());
        return matcher.matches();
    }
}
